<!--
  ~ Copyright (c) 2019. seven studio. @chengdu
  ~ seven studio in chengdu by lb
  ~ this project for snmp tool
  -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>Data-Table 表格</title>
    <link rel="stylesheet" href="/res/frame/layui/css/layui.css">
    <link rel="stylesheet" href="/res/frame/static/css/style.css">
    <link rel="icon" href="/res/frame/static/image/code.png">
</head>
<body class="body">

<!-- 工具集 -->
<div class="my-btn-box">
    <span class="fl">
        <a class="layui-btn btn-add btn-default" id="btn-refresh">刷新<i class="layui-icon">&#x1002;</i></a>
        <button type="button" class="layui-btn" id="upload"><i class="layui-icon"></i>上传备份</button>
    </span>

</div>

<!-- 表格 -->
<table class="layui-hide" id="dateTable" lay-filter="userList"></table>
<script type="text/javascript" src="/res/frame/layui/layui.js"></script>
<script type="text/javascript" src="/res/js/index.js"></script>
<script type="text/javascript">
    // layui方法
    layui.use(['table', 'form', 'layer', 'vip_table', 'cookie', 'laydate','upload'], function () {

        // 操作对象
        var form = layui.form
            , table = layui.table
            , layer = layui.layer
            , vipTable = layui.vip_table
            , $ = layui.jquery,
            cookie = layui.cookie,
            upload = layui.upload,
            laydate = layui.laydate;

        //初始化
        if ($.cookie('adminId') == null) {
            window.location.href = "/admin/login";
        }
        //日期选择框渲染
        laydate.render({
            elem: '#beginDate',
        });
        laydate.render({
            elem: '#endDate',
        });
        // 表格渲染
        var tableIns = table.render({
            elem: '#dateTable'                  //指定原始表格元素选择器（推荐id选择器）
            , height: vipTable.getFullHeight()
            , cols: [[
                {type: 'numbers', fixed: 'left', title: '序号'}
                , {field: 'bakName', title: '备份名称', align: 'center'}
                , {field: 'bakPath', title: '备份路径', align: 'center'}
                , {field: 'bakUName', title: '操作人', align: 'center'}
                , {field: 'pkGuid', hide: true}
                , {field: 'bakCreateDate', title: '创建时间', align: 'center'}
                , {
                    fixed: 'right', title: '操作', width: 300, align: 'center', templet: function (d) {
                        return "<a class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-normal\" lay-event=\"down\">下载</a>\n" +
                            "<a class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-normal\" lay-event=\"restore\">还原</a>\n" +
                            "<a class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-normal\" lay-event=\"del\">删除</a>\n"

                    }
                }
            ]]
            , id: 'tableReload'
            , url: '/back/listByPage'
            , method: 'post'
            , page: true
            , contentType: 'application/json'
            , request: {
                pageName: 'pageNum' //页码的参数名称，默认：page
                , limitName: 'pageSize' //每页数据量的参数名，默认：limit
            }
            , parseData: function (res) { //res 即为原始返回的数据
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.message, //解析提示文本
                    "count": res.data.total, //解析数据长度
                    "data": res.data.list //解析数据列表
                }
            }, response: {
                statusName: 'code' //规定数据状态的字段名称，默认：code
                , statusCode: "200" //规定成功的状态码，默认：0
                , msgName: 'msg' //规定状态信息的字段名称，默认：msg
                , countName: 'count' //规定数据总数的字段名称，默认：count
                , dataName: 'data' //规定数据列表的字段名称，默认：data
            }
            , loading: false
            , limits: [30, 60, 90, 150, 300]
            , limit: 30 //默认采用30
            , done: function (res, curr, count) {
            }
        });
        //搜索数据
        var active = {
            reload: function () {
                //执行重载
                table.reload('tableReload', {
                    page: {
                        curr: 1 //重新从第 1 页开始
                    }
                    , where: {}
                });
            },
        };

        $('.my-btn-box .layui-btn').on('click', function () {
            var type = $(this).data('type');
            active[type] ? active[type].call(this) : '';
        });

        // 刷新
        $('#btn-refresh').on('click', function () {
            tableIns.reload();
        });
        upload.render({
            elem: '#upload'
            ,url: '/back/upload'
            ,data:{
                'name':$.cookie('adminName'),
                'id':$.cookie('adminId')
            }
            ,accept: 'file' //普通文件
            ,done: function(res){
                layer.msg(res.msg);
                tableIns.reload();
            }
        });

        table.on('tool(userList)', function (obj) { //注：tool 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"
            var data = obj.data //获得当前行数据
                , layEvent = obj.event; //获得 lay-event 对应的值
            if (layEvent === 'down') {

                    download(data.pkGuid)
            } else if (layEvent === 'restore') {
                layer.confirm('确认还原', function (index) {
                    restore(data.pkGuid)
                });
            }else if (layEvent === 'del') {
                layer.confirm('确认删除', function (index) {
                    del(data.pkGuid)
            });
            }
        });

        function restore(pkGuid) {
            $.ajax({
                url: '/manager/restore?pkGuid=' + pkGuid,
                type: "get",
                contentType: "application/json",
                success: function (result) {
                    if (result.code == 200) {
                        layer.msg(result.msg);
                        tableIns.reload();
                    } else {
                        layer.msg(result.msg);
                        tableIns.reload();
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    console.log(XMLHttpRequest.responseText);

                }
            });

        }

        function download(pkGuid) {
            window.location.href = '/back/download?pkGuid=' + pkGuid;
            setTimeout(function () {
                tableIns.reload();
            }, 1000);

        }

        function del(pkGuid) {
            $.ajax({
                url: '/back/del?pkGuid=' + pkGuid,
                type: "get",
                contentType: "application/json",

                success: function (result) {

                    if (result.code == 200) {
                        layer.msg(result.msg);
                        tableIns.reload();
                    } else {
                        layer.msg(result.msg);
                        tableIns.reload();
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    console.log(XMLHttpRequest.responseText);

                }
            });
        }
    });

    function GetQueryString(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if (r != null) return unescape(r[2]);
        return null;
    }





</script>
</body>
</html>